home *** CD-ROM | disk | FTP | other *** search
- /*By Terje Vernly (terjeve@ifi.uio.no)*/
- #include <stdio.h>
- #include <stdlib.h>
-
- #define BUFSIZE 100*1024
-
- SkipBlanks(FILE *f)
- {
- int c=0;
-
- while (c!=' ' && c!='\t' && c!='\r' && c!='\n') c=fgetc(f);
- ungetc(c,f);
- }
-
- convert(FILE *f)
- {
- int maxX, maxY, maxval;
- int bytes_read;
- char *buffer;
-
- SkipBlanks(f);
- fscanf(f,"%d",&maxX);
- SkipBlanks(f);
- fscanf(f,"%d",&maxY);
- SkipBlanks(f);
- fscanf(f,"%d",&maxval);
- fgetc(f);
- printf("%d %d\n",maxX,maxY);
-
- if ((buffer=(char *) malloc(BUFSIZE))==NULL) {
- fprintf(stderr,"Not enough memory.\n");
- exit(1);
- }
-
- do {
- bytes_read=fread(buffer,1,BUFSIZE,f);
- fwrite(buffer,bytes_read,1,stdout);
- } while (bytes_read==BUFSIZE);
- }
-
- main(int argc, char **argv)
- {
- FILE *fd;
- int x,y;
-
- if (argc!=2) {
- fd=stdin;
- } else {
- if ((fd=fopen(argv[1],"rb"))==NULL) {
- fprintf(stderr,"%s: File not found\n",argv[0]);
- exit(1);
- }
- }
-
- setvbuf(stdout, (char *) NULL, _IOFBF, 100*1024);
-
- x=fgetc(fd);
- y=fgetc(fd);
- if (!((x=='P') && (y=='6'))) {
- fprintf(stderr,"Not a RAWBITS ppm-image.\n");
- exit(1);
- }
-
- convert(fd);
- fclose(fd);
- return 0;
- }
-